package domain;

import java.text.DecimalFormat;
import java.text.NumberFormat;

public class heurestiekCheck {
	
	private heurestiekCheckElement[][] heurestiekMap;
	
	public heurestiekCheckElement[][] getHeurestiekMap() {
		return heurestiekMap;
	}

	public void setHeurestiekMap(int x, int y) {
		this.heurestiekMap=new heurestiekCheckElement[x][y];
		//this.heurestiekMap = heurestiekMap;
	}

	public void setBoard(char[][] map){
		double pathcost;
		this.setHeurestiekMap(map.length,map[0].length);
		
		//System.out.println(map[0][0]);
		for(int row = 0; row < heurestiekMap.length; row++) {
			for(int col = 0; col < heurestiekMap[row].length; col++) {
				heurestiekMap[row][col]=new heurestiekCheckElement();
				if(map[row][col]=='%')
					heurestiekMap[row][col].setPositie("%");
				else
					heurestiekMap[row][col].setPositie(" ");
				
				if(map[row][col]=='P')
					heurestiekMap[row][col].setGepaseerd(true);
				
				if(!(map[row][col]=='%')){
				//pathcost=1;
				pathcost=Math.pow(0.5,col);
				//pathcost=Math.pow(0.5,col);
				heurestiekMap[row][col].setPathCost(pathcost);
				}
			}
			
		}

	}
	
	public void printBoard() {
		//char[][] mapToPrint = map.clone();
		String lijn = null;
		NumberFormat formatter=new DecimalFormat("0.####E0");
		for(int row = 0; row < heurestiekMap.length; row++) {
			for(int col = 0; col < heurestiekMap[row].length; col++) {
				
				if(heurestiekMap[row][col].getPositie().equals("%")){
					lijn=("   |%|   ");
					lijn+="\t";
				}
				else{
					if(heurestiekMap[row][col].isGepaseerd()==true)
						lijn="|*";
					else lijn="|";
					
					lijn+=formatter.format(heurestiekMap[row][col].getPathCost())+ "|";
					lijn+="\t";
				}	
			System.out.print(lijn);
			}
			System.out.print("\n");
		}
	}
	

}
